#!/usr/env/bin python
# -*- coding: utf-8 -*-

# @Time    : 2020/8/9 10:10|10:10
# @Author  : yangdingyi
# @File    : 2020-08-09.93.复原IP地址
# @Software: PyCharm
from tools.my_methods import *


class Solution:
    def restoreIpAddresses(self, s: str) -> List[str]:
        ans = []

        def dfs(ss, cc, nums):
            if cc == 4:
                if not ss:
                    ans.append('.'.join(list(map(lambda x: f'{x}', nums))))
            elif cc > 4:
                return
            num = 0
            for i in range(len(ss)):
                if i > 0 and num == 0:
                    break
                num = num * 10 + ord(ss[i]) - ord('0')
                if num > 255:
                    break

                dfs(ss[i+1:], cc+1, nums+[num])
        dfs(s, 0, [])

        return ans


questions = [
    ("25525511135",),
    ('010010',),
    ("111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",),
]

work(questions, lambda q: Solution().restoreIpAddresses(q[0]))

